Benjamin Otte [Mon, 21 Nov 2011 20:13:53 +0000 (21:13 +0100)]
rbtree: Don't write to nil node
The code used to set nil->parent, which could cause segfaults. Don't do
that. We also need to pass the parent explicitly to the fixup code,
because the node during fixup may be the nil node.
Benjamin Otte [Mon, 21 Nov 2011 21:28:36 +0000 (22:28 +0100)]
rbtree: Add a local variable
This will be needed in the next patch, and I wanted to split that patch
up.
Benjamin Otte [Mon, 21 Nov 2011 15:07:52 +0000 (16:07 +0100)]
rbtree: Move to an approach where we don't move contents
So instead of copying the children and height to the new node, we keep
the old node and copy all the old stuff to it.
This is necessary so the accessibility code can use the node as a key in
the hash table or store the node as a reference to the row instead of
GtkTreeRowReference. And because it already does that (oops), this fixes
a bunch of segfaults with a11y enabled.
Benjamin Otte [Sun, 20 Nov 2011 20:27:46 +0000 (21:27 +0100)]
rbtree: Use gtk_rbnode_adjust() even more
Use it for the modified node in gtk_rbnode_remove(). Cleans up the code
quite a lot.
Benjamin Otte [Sat, 19 Nov 2011 12:18:05 +0000 (13:18 +0100)]
rbtree: Use gtk_rbnode_adjust()
Make gtk_rbnode_remove() use it when unlinking the node.
Benjamin Otte [Sat, 19 Nov 2011 12:10:05 +0000 (13:10 +0100)]
rbtree: Use gtk_rbnode_adjust() more.
Make _gtk_rbtree_node_set_height() use it.
Benjamin Otte [Sat, 19 Nov 2011 12:08:10 +0000 (13:08 +0100)]
rbtree: Use gtk_rbnode_adjust() more
Make _gtk_rbtree_insert_before() use it.
Benjamin Otte [Sat, 19 Nov 2011 12:06:22 +0000 (13:06 +0100)]
rbtree: Use gtk_rbnode_adjust()
Make _gtk_rbtree_insert_after() use it.
Benjamin Otte [Sat, 19 Nov 2011 11:59:39 +0000 (12:59 +0100)]
rbtree: Split out a common function
gtk_rbtree_adjust() will adjust the summed values of a node and all its
parents in the tree. Currently only implemented by splitting out the
function from gtk_rbtree_free().
Benjamin Otte [Sat, 19 Nov 2011 11:48:25 +0000 (12:48 +0100)]
rbtree: Don't set variable twice
Benjamin Otte [Mon, 21 Nov 2011 18:51:39 +0000 (19:51 +0100)]
rbtree: Add assertions to clarify usage
Benjamin Otte [Mon, 21 Nov 2011 15:59:22 +0000 (16:59 +0100)]
rbtree: Mark all debug sections as debug
Benjamin Otte [Mon, 21 Nov 2011 15:59:37 +0000 (16:59 +0100)]
rbtree: Make debug functions private
They're not used elsewhere
Cosimo Cecchi [Mon, 21 Nov 2011 18:57:27 +0000 (13:57 -0500)]
notebook: use the current page allocation when computing the redraw area
Instead of taking the first page and trying to adjust the rect with
random padding values, take the current page, as it's always guaranteed
to be at least as tall as inactive tabs.
This fixes some annoying 1px drawing artifacts while switching tabs when
the theme disables notebook padding.
https://bugzilla.gnome.org/show_bug.cgi?id=664494
Cosimo Cecchi [Mon, 21 Nov 2011 17:08:11 +0000 (12:08 -0500)]
notebook: properly subtract the initial_gap width from the tab space
Instead of modifying the allocation.
https://bugzilla.gnome.org/show_bug.cgi?id=664494
Matthias Clasen [Mon, 21 Nov 2011 18:12:58 +0000 (13:12 -0500)]
Drop uses of @returns syntax
Matthias Clasen [Mon, 21 Nov 2011 18:05:47 +0000 (13:05 -0500)]
Prevent local filesystem influence in the a11y tests
By using the 'unix' gio volume monitor, we avoid variation
in the file chooser that otherwise breaks the 'pickers' test.
Alexander Larsson [Mon, 21 Nov 2011 14:03:53 +0000 (15:03 +0100)]
win32: Don't double free stuff when finalizing drag context
We were freeing stuff that was already freed in the parent class
finalizer.
Alexander Larsson [Mon, 21 Nov 2011 13:37:57 +0000 (14:37 +0100)]
win32: Don't dereference keyboard_grab if it is NULL
This fixes a crash in e.g. testdnd
Alexander Larsson [Mon, 21 Nov 2011 13:33:16 +0000 (14:33 +0100)]
win32: Make gdk_drag_context_new static
Dieter Verfaillie [Thu, 22 Sep 2011 20:47:23 +0000 (22:47 +0200)]
win32: get rid of GdkDragContextPrivateWin32 and related machinery.
This turns GdkWin32DragContext into a proper GdkDragContext subclass.
Because we now correctly initialize GdkWin32DragContext in
gdk_drag_context_new, we no longer crash immediatly when a DnD
operation is initialized (the find_window, drag_status, ... vfuncs
where all pointing to 0x0 instead of their proper win32 implementations).
We now try to consistently refer to GdkDragContext as "context",
GdkWin32DragContext as "win32_context" and the ole2 related
target_drag_context and source_drag_context as "ctx".
Members of GdkWin32DragContext only used by the ole2 DnD codepaths
are now explicitly marked with a ole2_dnd_ prefix.
Alexander Larsson [Mon, 21 Nov 2011 13:31:17 +0000 (14:31 +0100)]
Convert gtk-win32.css to unix line endings
Alexander Larsson [Mon, 21 Nov 2011 12:53:31 +0000 (13:53 +0100)]
Add gtk_symbolic_color_new_win32 to gtk.symbols
Alexander Larsson [Mon, 21 Nov 2011 12:52:39 +0000 (13:52 +0100)]
win32-theme: Fix up docs for gtk_symbolic_color_new_win32
Alexander Larsson [Mon, 21 Nov 2011 12:49:44 +0000 (13:49 +0100)]
Merge branch 'win32-theme2'
John Ralls [Mon, 21 Nov 2011 00:19:59 +0000 (16:19 -0800)]
[icons] text-x-generic isn't a generated icon
Calling it one causes maintainer-clean to delete it.
Javier Jardón [Sat, 19 Nov 2011 16:30:43 +0000 (16:30 +0000)]
gtk/gtkapplication.c: Fix typo
Cosimo Cecchi [Fri, 18 Nov 2011 16:58:56 +0000 (11:58 -0500)]
frame: make sure to allocate the CSS border width
Similar to GtkNotebook, GtkFrame was only allocating space for the
padding width, and not the border.
This could be seen by just running tests/testframe. With a theme that
renders frame borders, setting xthickness = 0 in the test draws the
button border over the frame border, which is wrong.
https://bugzilla.gnome.org/show_bug.cgi?id=664342
Cosimo Cecchi [Fri, 18 Nov 2011 16:42:01 +0000 (11:42 -0500)]
frame: add GTK_STYLE_CLASS_FRAME in _init()
Instead of adding it every time we use the GtkStyleContext, just add it
in _init().
https://bugzilla.gnome.org/show_bug.cgi?id=664342
Cosimo Cecchi [Fri, 18 Nov 2011 16:35:30 +0000 (11:35 -0500)]
notebook: make sure to allocate the CSS border width
Instead of taking only the CSS padding into account when allocating the
notebook children, also allocate the border width.
https://bugzilla.gnome.org/show_bug.cgi?id=664342
Rui Matos [Sun, 20 Nov 2011 20:00:08 +0000 (21:00 +0100)]
Bug 653676 - Expand/Collapse doesn't respond after one click
Ignore leave-notify-event when mode is GDK_CROSSING_GTK_[UN]GRAB.
Just [un]grabbing shouldn't cause us to [un]prelight the current arrow
and node.
Kristian Rietveld [Sun, 20 Nov 2011 17:54:20 +0000 (18:54 +0100)]
Don't call scroll to cell if the tree view is empty
Account for the case when gtk_drag_finish() didn't actually add a row
(can happen when dragging from an empty tree view to itself ...).
Kristian Rietveld [Sun, 20 Nov 2011 17:51:14 +0000 (18:51 +0100)]
Bug 660554 - gtk_tree_view_drag_begin: assertion `path != NULL' failed
Turned assertion into silent return.
This assertion is only hit when dragging from an empty tree view. In
this case, gtk_tree_view_begin_drag() is triggered from gtkdnd.c and not
from gtk_tree_view_maybe_begin_dragging_row(). We actually want to
cancel the drag at this point, but that is not possible with the GTK+
API as far as I can see.
The alternative is to not allowing the drag to start. This could be
done by simply unsetting the tree view as drag source when it is empty
and setting it as drag source again when rows are added. I didn't
choose to go with this for now, since this will likely break third party
code.
Kristian Rietveld [Sun, 20 Nov 2011 17:27:28 +0000 (18:27 +0100)]
quartz: fix coding style in quartz-version of gtk_drag_begin_internal
Kristian Rietveld [Sun, 20 Nov 2011 17:24:56 +0000 (18:24 +0100)]
quartz: do not call gdk_drag_begin() twice
This makes drag and drop work again on Quartz.
John Ralls [Sat, 19 Nov 2011 19:33:28 +0000 (11:33 -0800)]
[Bug 664238] GTK apps crash when dragging something
Corrects a bad condition in a test in
085b98f4
Jorge González [Sun, 20 Nov 2011 09:40:15 +0000 (10:40 +0100)]
Updated Spanish translation
Matthias Clasen [Sun, 20 Nov 2011 00:53:43 +0000 (19:53 -0500)]
Adapt iconview a11y test output
Matthias Clasen [Sun, 20 Nov 2011 00:28:48 +0000 (19:28 -0500)]
Improve AtkText implementations
There was some regressions from the recent display line fix;
while fixing it improve the test coverage and make GtkEntry
and GtkTextView return identical results.
Matthias Clasen [Sat, 19 Nov 2011 23:13:42 +0000 (18:13 -0500)]
Remove leftover debug spew
Matthias Clasen [Sat, 19 Nov 2011 23:08:18 +0000 (18:08 -0500)]
Add a missing static
Matthias Clasen [Sat, 19 Nov 2011 22:57:08 +0000 (17:57 -0500)]
Fix the build
Matthias Clasen [Sat, 19 Nov 2011 21:15:46 +0000 (16:15 -0500)]
Updates
Matthias Clasen [Sat, 19 Nov 2011 20:32:12 +0000 (15:32 -0500)]
Drop the Beagle search engine
It is not actively maintained.
Michel Dänzer [Sat, 19 Nov 2011 17:23:27 +0000 (12:23 -0500)]
Fix gdk_cairo_region_create_from_surface on big endian
gdk_cairo_region_create_from_surface doesn't work correctly on PPC.
This is most prominently seen with the GTK window resize grip, the
shape of which is mirrored every eight pixels horizontally.
At the same time, use an A1 surface for the resize grip shape to
eliminates an A8->A1 surface conversion.
Alexander Larsson [Fri, 18 Nov 2011 15:53:18 +0000 (16:53 +0100)]
win32: Default to gtk-win32 theme
Alexander Larsson [Fri, 18 Nov 2011 15:52:38 +0000 (16:52 +0100)]
Build in default win32 css as gtk-win32
Alexander Larsson [Fri, 18 Nov 2011 15:43:45 +0000 (16:43 +0100)]
Build gtkwin32css.h from gtk-win32.css
Alexander Larsson [Fri, 18 Nov 2011 15:20:32 +0000 (16:20 +0100)]
win32-theme: Add gtk-win32.css
Michael Natterer [Fri, 18 Nov 2011 15:42:25 +0000 (16:42 +0100)]
gdk: remove the GET_EFFECTIVE_KEYMAP() stuff from gdkkeys-x11.c
We don't support passing a NULL keymap any longer. Also pull some
precondition checks into the parent class.
Michael Natterer [Fri, 18 Nov 2011 14:26:09 +0000 (15:26 +0100)]
gdk_x11_keymap_get_modifier_mask(): always return a value
Michael Natterer [Fri, 18 Nov 2011 14:14:31 +0000 (15:14 +0100)]
Turn the private #define for the group-shifting modifier into API
Add GDK_MODIFIER_INTENT_SHIFT_GROUP to enum GdkModifierIntent
and handle it in gdk_keymap_get_modifier_mask(). Add an X11
impl of the method and return keymap_x11->group_switch_mask.
Return 0 from the default impl because we don't know.
Michael Natterer [Fri, 18 Nov 2011 11:25:03 +0000 (12:25 +0100)]
Bug 663856 - Make option-foo accelerators use the right symbol
If the keyboard group shifting modifier is *also* a normal
accelerator modifier, we need to special case it when calling
gdk_keymap_translate_keyboard_state(), so we get the right
key symbol for accelerators (for example we want Option-O,
not Option-Ø displayed in menu items). This patch should only
affect quartz where the Alt key both shifts the group and can
be used as accel modifier, and not X11 or Win32 where AltGr
is not used for accelerators.
- fix quartz' gdk_keymap_translate_keyboard_state() to return
the right consumed_modifiers
- add _gtk_translate_keyboard_accel_state() which does the
special casing
- use it everywhere instead of gdk_keymap_translate_keyboard_state()
Murray Cumming [Fri, 18 Nov 2011 10:30:07 +0000 (11:30 +0100)]
Fix tiny docs typo.
Alexander Larsson [Fri, 18 Nov 2011 10:06:32 +0000 (11:06 +0100)]
win32-theme: Support mixing parts
We need this to do something about the non-existing inconsistent
radio button state in win32.
Alexander Larsson [Fri, 18 Nov 2011 09:16:38 +0000 (10:16 +0100)]
Add support for win32 theme colors as symbolic colors
Alexander Larsson [Fri, 18 Nov 2011 09:15:04 +0000 (10:15 +0100)]
Add pulse style class and use in progress bar and entry
This is used for indeterminate progress reporting.
Alexander Larsson [Thu, 17 Nov 2011 18:43:13 +0000 (19:43 +0100)]
Set top/bottom style classes on spinbutton buttons
Alexander Larsson [Thu, 17 Nov 2011 16:34:05 +0000 (17:34 +0100)]
Add top/left/bottom/right style classes to steppers
This is needed for e.g. win32 theming, but is also generally
useful.
Alexander Larsson [Thu, 17 Nov 2011 13:34:39 +0000 (14:34 +0100)]
win32-theme: Support multiple parts being combined
This is needed for e.g. scrollbar sliders
Alexander Larsson [Wed, 16 Nov 2011 16:03:09 +0000 (17:03 +0100)]
Render background image if set for checks and options
The default theme engine draws a fallback check/radio image, but
doesn't let you replace this. We now check if a background image
is set and if so render that instead of the default fallbacks.
Alexander Larsson [Wed, 16 Nov 2011 11:19:20 +0000 (12:19 +0100)]
win32-theme: Support -gtk-win32-size CSS value
Alexander Larsson [Tue, 15 Nov 2011 19:52:45 +0000 (20:52 +0100)]
Add initial cut at win32 theme support for CSS
We now support -gtk-win32-theme-part(class,part,state) in background
and border-image CSS properties. This renders the corresponding
theme part using DrawThemeBackground() and acts as a base for a
CSS based windows theme.
Note that we build the parsing code even on non-win32 so that
all themese will parse the same on all arches. We draw pink instead
of the actual theme parts on non-win32 though.
Alexander Larsson [Tue, 15 Nov 2011 16:15:49 +0000 (17:15 +0100)]
make _gtk_style_property_resolve copy the result to an output value
This is preparation for allowing it to return a newly created
value, rather than just copying one.
Alexander Larsson [Tue, 15 Nov 2011 16:13:22 +0000 (17:13 +0100)]
Actually pass in a StylePropertyContext when getting images
This is in preparation for getting size-dependent results back
with the win32 themes.
Alexander Larsson [Tue, 15 Nov 2011 16:10:22 +0000 (17:10 +0100)]
Remove _gtk_style_properties_peek_property
We want to move to a world where getting style properties can
allocate a new value, depending on the style property context.
In this world we can't expose "peeking" a property, as we neet
to return a ref to the property that is newly created.
So, we move the peek code into get_property and use get_property
from get_valist.
Alexander Larsson [Tue, 15 Nov 2011 15:56:59 +0000 (16:56 +0100)]
Add GtkStylePropertyContext and use it in when getting style properties
At the toplevel we have _gtk_theming_engine_get, which lets us pass
in a property context with (atm) the size to get the property for.
Then there is a lot of plumbing to push this down into the lower
layers of the style property code until finally hitting
the property resolvers.
I need this because I will be adding a property resolver for win32
theme parts, and they render differently depending on the size
(i.e. they don't scale linearly). The idea is that the code
to get the background properties will pass in the final size
and we will resolve the theme part specification to that particular
size.
If the old non-context calls are used we just hardcode a size
of 100x100.
Alexander Larsson [Tue, 15 Nov 2011 15:26:46 +0000 (16:26 +0100)]
Save a generic boxes source in GtkImageBorder
We used to special handle gradient, but we want to be able to store
other sources (that will eventually resolve to cairo patterns).
For instance, this is needed to handle win32 theme part sources.
Alexander Larsson [Thu, 17 Nov 2011 11:25:56 +0000 (12:25 +0100)]
win32: make fixup_event correctly ref all GdkWindow members
This fixes some crashes related to owner changes and selections.
Alexander Larsson [Thu, 17 Nov 2011 10:59:27 +0000 (11:59 +0100)]
ref, don't unref, requestor member when copying GdkEvents
This seems like a typo, we should obviously ref the member when
copying. Apparently nobody copied GDK_SELECTION_* events...
Michael Natterer [Wed, 16 Nov 2011 23:49:42 +0000 (00:49 +0100)]
notebook: don't leak the action widgets
The notebook owns them, so it must destroy them in destroy().
(cherry picked from commit
87ebfb19fd9422de1d778396770c02e91e6481e8)
Benjamin Otte [Wed, 16 Nov 2011 23:29:30 +0000 (00:29 +0100)]
viewport: Get rid of deprecation warnings
Benjamin Otte [Wed, 16 Nov 2011 23:27:35 +0000 (00:27 +0100)]
viewport: Don't use deprecated functions
Benjamin Otte [Wed, 16 Nov 2011 23:25:15 +0000 (00:25 +0100)]
viewport: adjustments are never NULL
So there's no need to check for that in the getters.
Benjamin Otte [Wed, 16 Nov 2011 23:24:15 +0000 (00:24 +0100)]
viewport: Initialize the adjustment in the init function
Benjamin Otte [Wed, 16 Nov 2011 23:20:09 +0000 (00:20 +0100)]
viewport: Don't unset the adjustment on finalize
We unset it on destroy already. This makes it consistent with all other
scrollables.
Xan Lopez [Wed, 16 Nov 2011 21:41:57 +0000 (22:41 +0100)]
treeview: fix the build
Cosimo Cecchi [Wed, 16 Nov 2011 21:01:36 +0000 (16:01 -0500)]
treeview: use gtk_tree_view_ensure_background() consistently
In gtk_tree_view_state_flags_changed() we were setting the background on
the bin_window without the necessary "view" style class, making the
treeview render with the wrong color in some circumstances (such as when
adding an empty treeview in a window, as spotted by Brian Smith).
Cosimo Cecchi [Wed, 16 Nov 2011 20:59:47 +0000 (15:59 -0500)]
treeview: factor out gtk_tree_view_ensure_background()
We'll use it shortly.
Kjell Ahlstedt [Wed, 16 Nov 2011 08:03:12 +0000 (09:03 +0100)]
Maintain map/unmap invariants in GtkRecentChooserDialog
We used to explicitly map and unmap the child GtkRecentChooserWidget when
mapping and unmapping the dialog, respectively. Now that GtkContainer actually
unmaps child widgets (instead of avoiding that), we can assume that the
child GtkRecentChooserWidget will be unmapped when we want it to be.
This fixes a warning from gtk_widget_verify_invariants(), as we were mapping
our child widget before calling our parent class' ::map() handler. Bug #659257.
Bastien Nocera [Wed, 16 Nov 2011 18:49:54 +0000 (18:49 +0000)]
tests: Add tests for keypad keys parsing
See https://bugzilla.gnome.org/show_bug.cgi?id=606727
Bastien Nocera [Wed, 16 Nov 2011 18:47:39 +0000 (18:47 +0000)]
gtk: Parse keypad numbers correctly
Try to find keycodes for keysyms at level-0 in the keymap, but don't
fail to parse if we can find those in level-1. This fixes the
parsing of numerical keys on the keypad, which require a shift level
through Num-Lock.
https://bugzilla.gnome.org/show_bug.cgi?id=606727
Bastien Nocera [Wed, 16 Nov 2011 16:13:01 +0000 (16:13 +0000)]
tests: Check "without keycode" code path too
And see whether the output of gtk_accelerator_parse()
matches that of gtk_accelerator_parse_with_keycode()
Bastien Nocera [Wed, 16 Nov 2011 15:02:06 +0000 (15:02 +0000)]
Revert "tests: Disable accel test until fixed"
The test now works correctly.
This reverts commit
ba397a3431ee3850a72d8eab394b7ee62e65b737.
Matthias Clasen [Wed, 16 Nov 2011 05:27:14 +0000 (00:27 -0500)]
Update comment to new realities
Benjamin Otte [Wed, 16 Nov 2011 02:52:02 +0000 (03:52 +0100)]
a11y: Merge function into only caller
Also cleann up comments that are misleading now.
Benjamin Otte [Wed, 16 Nov 2011 02:47:33 +0000 (03:47 +0100)]
treeview: Call a11y functions for culmn changes directly
This way, the a11y code knows if a column was reordered, added or
removed and can do the right things instead of trying to guess and
getting it wrong.
Also, this patch finalizes the changes so that only visible columns
exist to the accessibility interface.
Benjamin Otte [Wed, 16 Nov 2011 01:40:49 +0000 (02:40 +0100)]
a11y: Unify column-by-index getting
We are only ever interested in visible columns. Invisible columns do not
exist for all a11y cares.
Benjamin Otte [Wed, 16 Nov 2011 00:32:07 +0000 (01:32 +0100)]
tests: Add an invisible column to the tree test
This one should be invisible if everything works as it should.
Benjamin Otte [Tue, 15 Nov 2011 21:29:45 +0000 (22:29 +0100)]
tests: Add checks for row/column index to accessibility-dump
Benjamin Otte [Tue, 15 Nov 2011 21:18:40 +0000 (22:18 +0100)]
tests: Don't dump stuff twice for tables
Captions and headers are printed as part of the children, so we can
avoid the duplication by just printing the name.
Benjamin Otte [Tue, 15 Nov 2011 15:45:48 +0000 (16:45 +0100)]
a11y: Use gtk_tree_view_get_n_columns()
In fact, invent our own function get_n_columns() which actually only
counts the visible functions, because that's the only ones we care
about.
The places where it's not used yet will be changed in the coming
patches.
Benjamin Otte [Tue, 15 Nov 2011 15:37:24 +0000 (16:37 +0100)]
API: treeview: Add gtk_tree_view_get_n_columns()
Benjamin Otte [Tue, 15 Nov 2011 20:30:46 +0000 (21:30 +0100)]
a11y: Fix get_column_index()
Benjamin Otte [Tue, 15 Nov 2011 19:24:51 +0000 (20:24 +0100)]
a11y: remove argument from get_column_number()
The argument was always FALSE.
Benjamin Otte [Tue, 15 Nov 2011 14:12:34 +0000 (15:12 +0100)]
treeview: Simplify a check
Use the same method as elsewhere.
Benjamin Otte [Tue, 15 Nov 2011 14:04:20 +0000 (15:04 +0100)]
treeview: Minor beautification
Benjamin Otte [Sun, 13 Nov 2011 03:43:32 +0000 (04:43 +0100)]
tests: Up the ante
Put 10000 rows into the tree-performance test, so the tests don't finish
in <1s. That's too little for profiling.
Benjamin Otte [Sun, 13 Nov 2011 03:28:52 +0000 (04:28 +0100)]
a11y: remove useless argument
The argument is unused these days, so don't confuse people with it.
Benjamin Otte [Sun, 13 Nov 2011 01:52:04 +0000 (02:52 +0100)]
a11y: Remove clean_rows function
It doesn't do anything anymore.